using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Carousel")]
	public class Carousel : MonoBehaviour
	{
		public List<GameObject> m_bones => method_3<Class251<GameObject>>("m_bones")?.method_25();

		public Collider m_collider => method_3<Collider>("m_collider");

		public bool m_useFlyIn => method_2<bool>("m_useFlyIn");

		public bool m_trackItemHit => method_2<bool>("m_trackItemHit");

		public bool m_noMouseMovement => method_2<bool>("m_noMouseMovement");

		public int m_maxPosition => method_2<int>("m_maxPosition");

		public int m_intPosition => method_2<int>("m_intPosition");

		public float m_position => method_2<float>("m_position");

		public float m_targetPosition => method_2<float>("m_targetPosition");

		public List<CarouselItem> m_items => method_3<Class251<CarouselItem>>("m_items")?.method_25();

		public int m_numItems => method_2<int>("m_numItems");

		public int m_radius => method_2<int>("m_radius");

		public bool m_touchActive => method_2<bool>("m_touchActive");

		public Vector2 m_touchStart => method_2<Vector2>("m_touchStart");

		public float m_startX => method_2<float>("m_startX");

		public float m_touchX => method_2<float>("m_touchX");

		public float m_velocity => method_2<float>("m_velocity");

		public int m_hitIndex => method_2<int>("m_hitIndex");

		public CarouselItem m_hitItem => method_3<CarouselItem>("m_hitItem");

		public Vector3 m_hitWorldPosition => method_2<Vector3>("m_hitWorldPosition");

		public float m_hitCarouselPosition => method_2<float>("m_hitCarouselPosition");

		public float m_totalMove => method_2<float>("m_totalMove");

		public float m_moveAdjustment => method_2<float>("m_moveAdjustment");

		public static float MIN_VELOCITY => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Carousel", "MIN_VELOCITY");

		public static float DRAG => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Carousel", "DRAG");

		public static float SCROLL_THRESHOLD => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Carousel", "SCROLL_THRESHOLD");

		public int m_momentumCounter => method_2<int>("m_momentumCounter");

		public int m_momentumTotal => method_2<int>("m_momentumTotal");

		public List<float> m_momentumHistory => method_3<Class250<float>>("m_momentumHistory")?.method_25();

		public bool m_doFlyIn => method_2<bool>("m_doFlyIn");

		public float m_flyInState => method_2<float>("m_flyInState");

		public bool m_settleCallbackCalled => method_2<bool>("m_settleCallbackCalled");

		public bool m_scrolling => method_2<bool>("m_scrolling");

		public Carousel(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Carousel(IntPtr address)
			: this(address, "Carousel")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void UpdateUI(bool mouseDown)
		{
			method_8("UpdateUI", mouseDown);
		}

		public bool MouseOver()
		{
			return method_11<bool>("MouseOver", Array.Empty<object>());
		}

		public float GetCarouselPosition(float x)
		{
			return method_11<float>("GetCarouselPosition", new object[1] { x });
		}

		public void InitVelocity()
		{
			method_8("InitVelocity");
		}

		public float CalculateVelocity()
		{
			return method_11<float>("CalculateVelocity", Array.Empty<object>());
		}

		public float DistanceFromSettle()
		{
			return method_11<float>("DistanceFromSettle", Array.Empty<object>());
		}

		public void SettlePosition(float bias)
		{
			method_8("SettlePosition", bias);
		}

		public void UpdateVisibleItems()
		{
			method_8("UpdateVisibleItems");
		}

		public void ClearItems()
		{
			method_8("ClearItems");
		}

		public bool AreVisibleItemsLoaded()
		{
			return method_11<bool>("AreVisibleItemsLoaded", Array.Empty<object>());
		}

		public int GetCurrentIndex()
		{
			return method_11<int>("GetCurrentIndex", Array.Empty<object>());
		}

		public int GetTargetPosition()
		{
			return method_11<int>("GetTargetPosition", Array.Empty<object>());
		}

		public CarouselItem GetCurrentItem()
		{
			return method_14<CarouselItem>("GetCurrentItem", Array.Empty<object>());
		}

		public void SetPosition(int n, bool animate)
		{
			method_8("SetPosition", n, animate);
		}

		public bool IsScrolling()
		{
			return method_11<bool>("IsScrolling", Array.Empty<object>());
		}

		public void DoFlyIn()
		{
			method_8("DoFlyIn");
		}

		public void StartScrolling()
		{
			method_8("StartScrolling");
		}
	}
}
